﻿Imports DTO
Imports System.Data.OleDb
Public Class MatSachDAO
    'ham  doc gia tri trong csdl
    Public Function Laymatsach() As List(Of MatSachDTO)

        Dim sql = "SELECT MaMatSach, MaSach, MaDG, MaNV, NgayGhiNhan, TienPhat FROM MatSach "
        Dim con As OleDbConnection = DatabaseProvider.connectData() 'ket noi csdl
        Dim cmd As New OleDbCommand(sql, con) ' thuc hien ket noi
        Dim reader As OleDbDataReader = cmd.ExecuteReader() ' thuc thi 
        Dim danhsach As New List(Of MatSachDTO) 'khai báo danhsach de du lieu do vao nó
        While reader.Read()
            Dim nvDTO As New MatSachDTO() ' khai báo doi tuong nvDTO de gán nhung doi tuong trong csdl vao
            nvDTO.MaMatSach = reader("MaMatSach") 'gán manv vao
            nvDTO.MaSach = reader("MaSach")
            nvDTO.MaDG = reader("MaDG")
            nvDTO.MaNV = reader("MaNV")
            nvDTO.NgayGhiNhan = reader("NgayGhiNhan")
            nvDTO.TienPhat = reader("TienPhat")
            
            danhsach.Add(nvDTO) ' add doi tuong nvDTO vao danhsach
        End While

        con.Close() ' đóng kết nối
        Return danhsach
    End Function

    Public Function ghinhanmatsach(ByVal ghDTO As MatSachDTO) As Integer
        'khai báo câu sql them chi nhánh 
        Dim sql As String = "insert into MatSach(MaSach,MaDG,MaNV,NgayGhiNhan,TienPhat) values (@MaSach,@MaDG,@MaNV,@NgayGhiNhan,@TienPhat)"
        'mo kết nối csdl 
        Dim con As OleDbConnection = DatabaseProvider.connectData()
        'tạo câu lệnh để kết nối csdl 
        Dim cmd As New OleDbCommand(sql, con)
        Dim para As New OleDbParameter
        'điền giá trị cho @MaSach
        para = cmd.Parameters.Add("@MaSach", OleDbType.Integer)
        para.Value = ghDTO.MaSach
        para = cmd.Parameters.Add("@MaDG", OleDbType.Integer)
        para.Value = ghDTO.MaDG
        para = cmd.Parameters.Add("@MaNV", OleDbType.Integer)
        para.Value = ghDTO.MaNV
        para = cmd.Parameters.Add("@NgayGhiNhan", OleDbType.Date)
        para.Value = ghDTO.NgayGhiNhan
        para = cmd.Parameters.Add("@TienPhat", OleDbType.Integer)
        para.Value = ghDTO.TienPhat
        'thuc thi câu sql
        Dim i As Integer = cmd.ExecuteNonQuery()
        'đóng kết nối csdl
        con.Close()
        If (i >= 0) Then
            Return 1 'thêm thánh công
        Else
            Return 0 'ghi nhận thất bại
        End If


    End Function

End Class
